/**************************************************************************
 *  创建者：        hualei
 *  开始时间：   2018.09.28
 *  copyright:  (C) 深圳市华友高科有限公司
 *  修改说明：  (每次有修改就添加一条，带有 修改人，修改时间，修改描述)
 *
 ***************************************************************************
 *   CHARGING 充电指令属性编辑视窗类
 *
 ***************************************************************************/
#ifndef CHARGINGINSTRUCTIONVIEW_H
#define CHARGINGINSTRUCTIONVIEW_H

#include <QWidget>
#include "charginginstructionview_global.h"
#include <QTranslator>
#include "instructionEnum.h"

class ProgramView;

namespace Ui {
class ChargingInstructionView;
}

///**
// * @brief The EM_CHARGING_FINISH_TYPE enum      充电配置类型
// */
//enum EM_CHARGING_FINISH_TYPE
//{
//    E_CHARGING_TIME,            // 充电时间
//    E_CHARGING_CAPARITY,        // 充电容量
//    E_CHARGING_FIRST_FINISHED   // 取任一最先完成项
//};

/**
 * @brief The ChargingInstructionView class     CHARGING 充电指令属性编辑视窗类
 */
class CHARGINGINSTRUCTIONSHARED_EXPOT  ChargingInstructionView : public QWidget
{
    Q_OBJECT

public:
    explicit ChargingInstructionView(int styleId,QWidget *parent = 0);

    /**
     * @brief getInput             获取界面输入
     */
    void getInput();

    /**
     * @brief updateView            更新数据显示在界面
     */
    void updateView();

    /**
     * @brief changeLanguage      界面语言切换
     * @param language
     */
    void changeLanguage(int language);

    void initialDisplayStyle(int styleId);

signals:

    /**
     * @brief cleanNoteStrSignal             删除注释信号
     */
    void cleanNoteStrSignal();

    /**
     * @brief finishEditInstruction         指令属性编辑完成
     */
    void finishEditInstruction();

    /**
     * @brief saveInstructionSignal         保存指令
     * @param instructionStr                指令字符串
     */
    void saveInstructionSignal(const QString& instructionStr);

private slots:
    /**
     * @brief on_clearNote_Btn_clicked      清除注释响应槽函数
     */
    void on_clearNote_Btn_clicked();

    /**
     * @brief on_forward_Btn_clicked        上一页响应槽函数
     */
    void on_forward_Btn_clicked();

    /**
     * @brief on_save_Btn_clicked           保存响应槽函数
     */
    void on_save_Btn_clicked();

    /**
     * @brief on_ChargingTime_RadioBtn_clicked   选择充电时间
     */
    void on_ChargingTime_RadioBtn_clicked();

    /**
     * @brief on_ChargingCaparity_RadioBtn_clicked      选择充电容量比
     */
    void on_ChargingCaparity_RadioBtn_clicked();

    /**
     * @brief on_FirstFinish_RadioBtn_clicked           选择最先完成项
     */
    void on_FirstFinish_RadioBtn_clicked();

    /**
     * @brief on_ChargingCaparity_slider_sliderMoved        充电容量滑块位置移动响应槽函数
     * @param position                                      位置数值
     */
    void on_ChargingCaparity_slider_sliderMoved(int position);

    /**
     * @brief on_ChargingCaparity_LineEdit_textChanged      充电容量输入框内容改变响应槽函数
     * @param arg1                                          改变的内容
     */
    void on_ChargingCaparity_LineEdit_textChanged(const QString &arg1);

    /**
     * @brief on_ChargingCaparity_slider_valueChanged       充电容量滑块数值改变响应槽函数
     * @param value                                         改变的数值
     */
    void on_ChargingCaparity_slider_valueChanged(int value);

public:

    /**
     * @brief programView           指令程序主视图对象
     */
    ProgramView *programView;

    /**
     * @brief instructionStr        指令字符串
     */
    QString instructionStr;

    /**
     * @brief chargingTime          充电时间
     */
    int chargingTime;

    /**
     * @brief chargingCaparity     充电容量
     */
    int chargingCaparity;

    /**
     * @brief chargingFinishedType      充电类型
     */
    EM_CHARGING_FINISH_TYPE chargingFinishedType;

    /**
     * @brief noteStr             注释
     */
    QString noteStr;

private:

    Ui::ChargingInstructionView *ui;

    /**
     * @brief translator            语言更改翻译
     */
    QTranslator translator;
};

#endif // CHARGINGINSTRUCTIONVIEW_H
